home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Compendium Deluxe 2
/
LSD and 17bit Compendium Deluxe - Volume II.iso
/
a
/
prog
/
asmsrc
/
mischards.lha
/
SourceCode
/
OffSpring.s
< prev
next >
Wrap
Text File
|
1980-02-20
|
35KB
|
2,036 lines
opt c-
Section "OffSpring-ChipRamCode",Code_c
FallSpeed = 1
MoveSpeed = 1
Start Movem.l d0-d7/a0-a6,-(a7)
Move.l a7,InitialSP
Jsr KillOS
Move.l #0,TimeFrame
Jsr SetBitPlanes
Jsr SetMouse
; Jsr DoCopperShade
Reset Jsr SetVars
Move.l #0,TimeFrame
Jsr BlitMap
Move.w #$ffff,$Dff02e
Jsr MainLoop
Btst #2,$Dff016
Beq Reset
Jsr HelpOS
Move.l InitialSP,a7
Movem.l (a7)+,d0-d7/a0-a6
Move.l #0,d0
Rts
KillOS
Move.w #$ffff,d0
SysPause Move.w d0,$Dff182
Dbf d0,SysPause
Move.l $4,a6
Moveq #0,d0
Lea GFXLib(PC),a1
Jsr -552(a6) _LVOOpenLibrary
Move.l d0,GFXBase
Jsr -132(a6) _LVOForbid
Jsr -150(a6) _LVOSuperState
Move.l d0,SYSStack
Move.w $Dff01C,IntEnSave
Move.w $Dff01E,IntRqSave
Move.w $Dff002,DMASave
Move.w $Dff010,ADKSave
Bset #1,$Bfe001
Move.w #%0111111111111111,$Dff096
Move.l #Newcopper,$Dff080
Clr.w $Dff088
Move.w #%1000011111000000,$Dff096
Rts
DoCopPokeABCD Move.w #3,d1
Bra PokeLoop
DoCopPokeAD Move.w #1,d1
PokeLoop Move.l #ShitBuffer,d0
Move.w d0,4(a0)
Swap d0
Move.w d0,(a0)
Swap d0
Add.l #8,a0
Dbf d1,PokeLoop
Rts
SetVars Move.w #0,DiagX
Move.w #0,BlokeXPos
Move.w #192,BlokeYPos
Move.w #0,NastyXPos
Move.w #0,NastyYPos
Lea CBlokeA,a0
Bsr DoCopPokeABCD
Lea CNastyA,a0
Bsr DoCopPokeABCD
Lea CGoodTable,a1
Move.w #15,d7
ResetCGood Move.l (a1)+,a0
Bsr DoCopPokeABCD
Dbf d7,ResetCGood
Lea CGoodRecTable,a1
Move.w #15,d7
ResetCGoodRec Move.l (a1)+,a0
Bsr DoCopPokeAD
Dbf d7,ResetCGoodRec
Lea GoodiesList,a0
Move.w (a0)+,d7
Sub.w #1,d7
GoodySetter Bset #0,(a0)
Add.l #8,a0
Dbf d7,GoodySetter
Rts
MainLoop
Move.w #%0000010000000000,$Dff096
Jsr DoCBloke
Jsr DoCNasty
VblWait Cmpi.b #$90,$Dff006
Bne VblWait
Add.b #1,TimeFrame
Cmpi.b #50,TimeFrame
Bne NotSecYet
Move.b #0,TimeFrame
Add.b #1,TimeSecs
Cmpi.b #60,TimeSecs
Bne NotSecYet
Move.b #0,TimeSecs
Add.b #1,TimeMins
Cmpi.b #60,TimeMins
Bne NotSecYet
Move.b #0,TimeMins
Add.b #1,TimeHour
NotSecYet Move.w #$555,$Dff180
Bsr CRecallBlokeMap
Bsr CRecallNastyMap
Bsr SetGoodies
Move.w #%1000011111000000,$Dff096
Bsr TrackStick
Bsr KeyBoard
Bsr BlokeCollDet
Bsr BlokeCon
Bsr BlokeWalk
Bsr BlokeCollDet
Bsr BlokeCon
Bsr BlokeWalk
Bsr NastyCollDet
Bsr NastyCon
Bsr NastyWalk
Move.w #$000,$Dff180
Btst #2,$Dff016
Beq EndMainLoop
Btst #6,$Bfe001
Bne MainLoop
EndMainLoop Rts
SetBitPlanes Move.l #Piccy,d0
Move.w d0,Pl0l
Swap d0
Move.w d0,Pl0h
Swap d0
add.l #40,d0
Move.w d0,Pl1l
Swap d0
Move.w d0,Pl1h
Swap d0
add.l #40,d0
Move.w d0,Pl2l
Swap d0
Move.w d0,Pl2h
Swap d0
add.l #40,d0
Move.w d0,Pl3l
Swap d0
Move.w d0,Pl3h
Swap d0
add.l #40,d0
Move.w d0,Pl4l
Swap d0
Move.w d0,Pl4h
Rts
BlitMap Lea HardWare,a6
Move.l #DeadCopper,$Dff080
Lea MapData,a5
Lea Piccy,a4
Move.w #28,d7
DoYMap Move.l a4,a2
Move.w #39,d6
DoXMap Lea BloxData,a3
Move.w (a5)+,d5
And.l #$3fff,d5
Moveq #0,d4
Move.w d5,d4
Move.l #40,d3
Divs d3,d4
Moveq #0,d0
Moveq #0,d1
Move.w d4,d3
Swap d4
Move.l #1600,d2
Muls d3,d2
Add.w d4,d2
And.l #$ffff,d2
Add.l d2,a3
Move.l a2,a1
Bsr DoMapBlit
NoBlox Add.l #1,a2
Dbf d6,DoXMap
Add.l #1600,a4
Dbf d7,DoYMap
Bsr BlitterWait
Move.l #$ffffffff,Bltafwm(a6)
Move.l #PiccyBack,Bltdpth(a6)
Move.w #0,Bltdmod(a6)
Move.l #Piccy,Bltapth(a6)
Move.w #0,Bltamod(a6)
Move.w #$09f0,Bltcon0(a6)
Move.w #$0000,Bltcon1(a6)
Move.w #4,d7
Mapcopy Bsr Blitterwait
Move.w #231*64+20,BltSize(a6)
Dbf d7,MapCopy
Bsr Blitterwait
Move.l #NewCopper,$Dff080
Rts
DoMapBlit Lea HardWare,a6
Bsr BlitterWait
Move.l a1,Bltdpth(a6)
Move.l a1,Bltcpth(a6)
Move.w #36,Bltdmod(a6)
Move.w #36,Bltcmod(a6)
Move.l #000,Bltapth(a6)
Move.l a3,Bltbpth(a6)
Move.w #36,Bltamod(a6)
Move.w #36,Bltbmod(a6)
Move.w #$0000,Bltcon1(a6)
Move.l a1,d0
Move.l a3,d1
Btst #0,d0
Bne Shift1
Move.l #$ff000000,Bltafwm(a6)
Btst #0,d1
Beq Shift2
Shift3 Move.w #$8002,Bltcon1(a6)
Add.l #1600,a1
Add.l #1600,a3
Move.l a1,Bltdpth(a6)
Move.l a1,Bltcpth(a6)
Move.l a3,Bltbpth(a6)
Move.w #$ffff,Bltadat(a6)
Move.w #$07ca,Bltcon0(a6)
Move.w #((8*5)+1)*64+2,Bltsize(a6)
Rts
Shift1 Move.l #$00ff0000,Bltafwm(a6)
Btst #0,d1
Bne Shift2
Move.w #$8000,Bltcon1(a6)
Shift2 ;Move.w #$ffff,Bltadat(a6)
Move.w #$07ca,Bltcon0(a6)
Move.w #(8*5)*64+2,Bltsize(a6)
Noblit Rts
DoCBloke Lea HardWare,a6
Bsr ProcBlokePos
Bsr DoBlokeFrame
Move.l #BlokeData,a0
Move.l #BlokeMask,a1
Add.l d0,a0
Add.l d0,a1
Bsr DoPosCalc
Move.l a0,d1
Move.l a1,d2
Move.l #Piccy,d3
Add.l d0,d3
Lea CBlokeA,a0
Move.w d2,4(a0)
Swap d2
Move.w d2,(a0)
Move.w d1,12(a0)
Swap d1
Move.w d1,8(a0)
Move.w d3,20(a0)
Move.w d3,28(a0)
Swap d3
Move.w d3,16(a0)
Move.w d3,24(a0)
Lea CBlokeCon,a0
Move.w d4,4(a0)
Or.w #$fca,d4
Move.w d4,(a0)
Rts
DoCNasty Lea HardWare,a6
Bsr ProcNastyPos
Bsr DoNastyFrame
Move.l #NastyData,a0
Move.l #NastyMask,a1
Add.l d0,a0
Add.l d0,a1
Bsr DoPosCalc
Move.l a0,d1
Move.l a1,d2
Move.l #Piccy,d3
Add.l d0,d3
Lea CNastyA,a0
Move.w d2,4(a0)
Swap d2
Move.w d2,(a0)
Move.w d1,12(a0)
Swap d1
Move.w d1,8(a0)
Move.w d3,20(a0)
Move.w d3,28(a0)
Swap d3
Move.w d3,16(a0)
Move.w d3,24(a0)
Lea CNastyCon,a0
Move.w d4,4(a0)
Or.w #$fca,d4
Move.w d4,(a0)
Rts
BlokeWalk Btst #1,JumpFlag
Bne NoWalkFrames
Btst #0,CollFlag1
Bne NoWalkFrames
Btst #1,CollFlag1
Bne NoWalkFrames
Move.b WalkCounter,d0
Btst #0,JumpFlag
Bne DoJumpFrames
Btst #5,MoveFlag
Beq NotNewFrame
Btst #0,JumpFlag
Beq NoJumpFrame
DoJumpFrames Move.w JumpDown,d3
Move.b JumpFlag1,d4
Cmp.b d3,d4
Ble JumpUpFrame
Move.w #5,d1
Bra NotEndFrame
JumpUpFrame Move.w #4,d1
Bra NotEndFrame
NoJumpFrame Move.b WalkSpeed,d1
Add.b #1,d0
Cmp.b d0,d1
Bne NotNewFrame
Move.b #0,d0
Move.b WalkFrame,d1
Add.b #1,d1
Cmpi.b #4,d1
Beq EndFrame
Cmpi.b #5,d1
Beq EndFrame
Cmpi.b #6,d1
Beq EndFrame
Bra NotEndFrame
EndFrame Move.b #0,d1
NotEndFrame Move.b d1,WalkFrame
NotNewFrame Move.b d0,WalkCounter
NoWalkFrames Rts
NastyWalk Btst #1,JumpFlagN
Bne NoWalkFramesN
Btst #0,CollFlag1N
Bne NoWalkFramesN
Btst #1,CollFlag1N
Bne NoWalkFramesN
Move.b WalkCounterN,d0
Btst #0,JumpFlagN
Bne DoJumpFramesN
Btst #5,MoveFlagN
Beq NotNewFrameN
Btst #0,JumpFlagN
Beq NoJumpFrameN
DoJumpFramesN Move.w JumpDownN,d3
Move.b JumpFlag1N,d4
Cmp.b d3,d4
Ble JumpUpFrameN
Move.w #5,d1
Bra NotEndFrameN
JumpUpFrameN Move.w #4,d1
Bra NotEndFrameN
NoJumpFrameN Move.b WalkSpeedN,d1
Add.b #1,d0
Cmp.b d0,d1
Bne NotNewFrameN
Move.b #0,d0
Move.b WalkFrameN,d1
Add.b #1,d1
Cmpi.b #4,d1
Beq EndFrameN
Cmpi.b #5,d1
Beq EndFrameN
Cmpi.b #6,d1
Beq EndFrameN
Bra NotEndFrameN
EndFrameN Move.b #0,d1
NotEndFrameN Move.b d1,WalkFrameN
NotNewFrameN Move.b d0,WalkCounterN
NoWalkFramesN Rts
CRecallNastyMap Bsr ProcNastyPos
Lea CNastyRecA,a0
Bra DoCRecallPoke
CRecallBlokeMap Bsr ProcBlokePos
Lea CBlokeRecA,a0
DoCRecallPoke Bsr DoPosCalc
Move.l #Piccy,d2
Move.l #PiccyBack,d1
Add.l d0,d2
Add.l d0,d1
DoCBlitPoke Move.w d1,4(a0)
Swap d1
Move.w d1,(a0)
Move.w d2,12(a0)
Swap d2
Move.w d2,8(a0)
Rts
DoBlokeFrame Moveq #0,d0
Moveq #0,d1
Move.b WalkFrame,d1
Move.l #1920,d0
Muls d1,d0
Btst #0,DireFlag
Bne RightFrame
Add.w #6,d0
RightFrame Rts
DoNastyFrame Moveq #0,d0
Moveq #0,d1
Move.b WalkFrameN,d1
Move.l #1920,d0
Muls d1,d0
Btst #0,DireFlagN
Bne RightFrameN
Add.w #6,d0
RightFrameN Rts
ProcBlokePos Moveq #0,d5
Moveq #0,d6
Move.w BlokeXPos,d5
Move.w BlokeYPos,d6
Move.w #288,d3
Move.w #200,d4
Bsr DoProc
Move.w BlokeFrame,d7
Move.w d5,BlokeXpos
Move.w d6,BlokeYpos
Rts
ProcNastyPos Moveq #0,d5
Moveq #0,d6
Move.w NastyXPos,d5
Move.w NastyYPos,d6
Move.w #288,d3
Move.w #200,d4
Bsr DoProc
Move.w NastyFrame,d7
Move.w d5,NastyXpos
Move.w d6,NastyYpos
Rts
ProcGoodyPos Moveq #0,d5
Moveq #0,d6
Move.w GoodyXPos,d5
Move.w GoodyYPos,d6
Move.w #303,d3
Move.w #208,d4
Bsr DoProc
Move.w d5,GoodyXpos
Move.w d6,GoodyYpos
Rts
DoProc Tst.w d5
Bpl NoClearD5
Clr.w d5
NoClearD5 Tst.w d6
Bpl NoClearD6
Clr.w d6
NoClearD6 Cmp.w d3,d5
Ble ObjXnover
Move.w d3,d5
ObjXnover Cmp.w d4,d6
Ble ObjYnover
Move.w d4,d6
ObjYnover Rts
DoPosCalc Moveq #0,d0
Move.l #200,d4
Muls d6,d4
Add.l d4,d0
Move.w d5,d4
Asr.w #3,d5
Bclr #0,d5
Add.l d5,d0
And.w #$f,d4
Move.w d4,d3
Asl.w #8,d4
Asl.w #4,d4
Rts
BlitterWait Btst #6,DmaConr(A6)
Bne BlitterWait
Rts
TrackMouse Move.w $Dff00a,d0
Move.b OldX,d1
Move.b d0,OldX
Sub.b d0,d1
Ext.w d1
Sub.w d1,NastyXPos
Lsr.w #8,d0
Move.b OldY,d1
Move.b d0,OldY
Sub.b d0,d1
Ext.w d1
Sub.w d1,NastyYPos
Rts
SetMouse Move.w $Dff00a,d0
Move.b d0,OldX
Lsr.w #8,d0
Move.b d0,Oldy
Rts
BlokeCon Move.b MoveFlag,d0
Move.b CollFlag,d1
Move.b JumpFlag,d2
Move.b CollFlag1,d3
Btst #0,d2
Bne JoyAction
Btst #2,d1
Bne OnFloor
Btst #2,d3
Bne OnFloor
FreeFall Add.w #FallSpeed,BlokeYPos
Move.b #5,WalkFrame
Bset #1,JumpFlag
Bra FloorTest
OnFloor Bclr #1,JumpFlag
FloorTest Btst #5,d0
Bne JoyAction
Rts
JoyAction Btst #0,d0
Beq NoMoveRight
Btst #0,d3
Bne NoMoveRight
Btst #0,d2
Bne BypassRColl
Btst #0,d1
Bne NoMoveRight
BypassRColl Add.w #MoveSpeed,BlokeXPos
Bset #0,DireFlag
NoMoveRight Btst #1,d0
Beq NoMoveLeft
Btst #1,d3
Bne NoMoveLeft
Btst #0,d2
Bne BypassLColl
Btst #1,d1
Bne NoMoveLeft
BypassLColl Sub.w #MoveSpeed,BlokeXPos
Bclr #0,DireFlag
NoMoveLeft Btst #3,d0
Beq NoJumpUp
Btst #0,d2
Bne NoJumpUp
Btst #2,d1
Bne JumpUp
Btst #2,d3
Bne JumpUp
Bra NoJumpUp
JumpUp Bset #0,JumpFlag
Move.b #0,JumpFlag1
NoJumpup And.b #$f,d0
Move.b d0,MoveFlag1
Btst #0,d2
Bne Jumping
Rts
Jumping Move.w JumpDown,d0
Move.b JumpFlag1,d1
Cmp.b d0,d1
Ble JumpingUp
Btst #2,CollFlag
Beq JumpingUpA
Bra JumpingUpB
JumpingUpA Btst #2,CollFlag1
Beq JumpingUp
Btst #4,CollFlag1
Bne JumpingUp
JumpingUpB Btst #3,CollFlag
Beq EndJump
Btst #3,CollFlag1
Bne EndJump
JumpingUp Lea JumpSpeed,a0
Moveq #0,d0
Move.b JumpFlag1,d0
Add.b #1,d0
Move.w JumpFrames,d1
Cmp.b d0,d1
Beq EndJump
Move.b d0,JumpFlag1
Asl.w #1,d0
Add.l d0,a0
Move.w (a0),d1
Add.w d1,BlokeYPos
Rts
EndJump Bclr #0,JumpFlag
Move.b #0,WalkFrame
Btst #2,CollFlag
Bne NoFreeFall
Btst #2,CollFlag1
Bne NoFreeFall
Move.b #5,WalkFrame
Bset #1,JumpFlag
Add.w #1,BlokeYPos
NoFreeFall Rts
NastyCon Move.b MoveFlagN,d0
Move.b CollFlagN,d1
Move.b JumpFlagN,d2
Move.b CollFlag1N,d3
Btst #0,d2
Bne JoyActionN
Btst #2,d1
Bne OnFloorN
Btst #2,d3
Bne OnFloorN
FreeFallN Add.w #1,NastyYPos
Move.b #5,WalkFrameN
Bset #1,JumpFlagN
Bra FloorTestN
OnFloorN Bclr #1,JumpFlagN
FloorTestN Btst #5,d0
Bne JoyActionN
Rts
JoyActionN Btst #0,d0
Beq NoMoveRightN
Btst #0,d3
Bne NoMoveRightN
Btst #0,d2
Bne BypassRCollN
Btst #0,d1
Bne NoMoveRightN
BypassRCollN Add.w #1,NastyXPos
Bset #0,DireFlagN
NoMoveRightN Btst #1,d0
Beq NoMoveLeftN
Btst #1,d3
Bne NoMoveLeftN
Btst #0,d2
Bne BypassLCollN
Btst #1,d1
Bne NoMoveLeftN
BypassLCollN Sub.w #1,NastyXPos
Bclr #0,DireFlagN
NoMoveLeftN Btst #3,d0
Beq NoJumpUpN
Btst #0,d2
Bne NoJumpUpN
Btst #2,d1
Bne JumpUpN
Btst #2,d3
Bne JumpUpN
Bra NoJumpUpN
JumpUpN Bset #0,JumpFlagN
Move.b #0,JumpFlag1N
NoJumpupN And.b #$f,d0
Move.b d0,MoveFlag1N
Btst #0,d2
Bne JumpingN
Rts
JumpingN Move.w JumpDownN,d0
Move.b JumpFlag1N,d1
Cmp.b d0,d1
Ble JumpingUpN
Btst #2,CollFlagN
Beq JumpingUpAN
Bra JumpingUpBN
JumpingUpAN Btst #2,CollFlag1N
Beq JumpingUpN
Btst #4,CollFlag1N
Bne JumpingUpN
JumpingUpBN Btst #3,CollFlagN
Beq EndJumpN
Btst #3,CollFlag1N
Bne EndJumpN
JumpingUpN Lea JumpSpeedN,a0
Moveq #0,d0
Move.b JumpFlag1N,d0
Add.b #1,d0
Move.w JumpFramesN,d1
Cmp.b d0,d1
Beq EndJumpN
Move.b d0,JumpFlag1N
Asl.w #1,d0
Add.l d0,a0
Move.w (a0),d1
Add.w d1,NastyYPos
Rts
EndJumpN Bclr #0,JumpFlagN
Move.b #0,WalkFrameN
Btst #2,CollFlagN
Bne NoFreeFallN
Btst #2,CollFlag1N
Bne NoFreeFallN
Move.b #5,WalkFrameN
Bset #1,JumpFlagN
Add.w #1,NastyYPos
NoFreeFallN Rts
BlokeCollDet Lea MapData,a1
Move.w BlokeXPos,d6
Move.w BlokeYPos,d7
Move.b #$00,CollFlag
Move.b #$00,CollFlag1
Bclr #7,DireFlag
Bra DoCollTests
NastyCollDet Lea MapData,a1
Move.w NastyXPos,d6
Move.w NastyYPos,d7
Move.b #$00,CollFlagN
Move.b #$00,CollFlag1N
Bset #7,DireFlag
DoCollTests Move.w #22,d4
Move.w #29,d5
Moveq #0,d3
Bsr DoCollDet
Move.w #10,d4
Move.w #29,d5
Move.w #1,d3
Bsr DoCollDet
Move.w #16,d4
Move.w #32,d5
Move.w #2,d3
Bsr DoCollDet
Move.w #16,d4
Move.w #31,d5
Move.w #3,d3
Bsr DoCollDet
Move.w #16,d4
Move.w #30,d5
Move.w #4,d3
Bsr DoCollDet
Rts
DoCollDet Move.w d6,d0
Move.w d7,d1
Add.w d4,d0
Add.w d5,d1
Move.l a1,a0
Asr.w #3,d0
Asr.w #3,d1
Moveq #0,d4
Move.l #40,d2
Muls d1,d2
Move.w d2,d4
Add.w d0,d4
Asl.l #1,d4
Add.l d4,a0
Move.b (a0),d0
Btst #7,d0
Beq NoCollisA
Btst #7,DireFlag
Bne DoNastyCSet
Bset d3,CollFlag
Bra NoCollisA
DoNastyCSet Bset d3,CollFlagN
NoCollisA Btst #6,d0
Beq NoCollisB
Btst #7,DireFlag
Bne DoNastyCSet1
Bset d3,CollFlag1
Bra NoCollisB
DoNastyCSet1 Bset d3,CollFlag1N
NoCollisB Rts
TrackStick Lea MoveFlag,a5
Lea HardWare+Joy1Dat,a0
Bra TestJoy
TrackStickN Lea MoveFlagN,a5
Lea HardWare+Joy0Dat,a0
TestJoy And.w #%11000000,(a5)
Move.w (a0),d0
Btst #1,d0
Beq JoyLeft
GoRight Bset #0,(a5)
Bset #5,(a5)
JoyLeft Btst #9,d0
Beq JoyDown
GoLeft Bset #1,(a5)
Bset #5,(a5)
JoyDown Move.w d0,d1
Lsr.w #1,d1
Eor.w d0,d1
Btst #0,d1
Beq JoyUp
GoDown ;Bset #2,(a5)
;Bset #5,(a5)
JoyUp Btst #$8,d1
Beq JoyFire
GoUp Bset #3,(a5)
Bset #5,(a5)
JoyFire Btst #7,$Bfe001
Bne NoJoyFire
GoFire Bset #4,(a5)
Bset #5,(a5)
NoJoyFire Rts
KeyBoard Lea MoveFlagN,a5
Lea $Bfec01,a0
Lea $Bfee01,a1
TestBoard Moveq #0,d0
Move.b (a0),d0
Not.b d0
Ror.b #1,d0
Move.b d0,d1
Bset #6,(a1)
Move.b #0,(a0)
Nop
Move.b #$ff,(a0)
Nop
Bclr #6,(a1)
Bclr #7,d0
Cmpi.b #$19,d0
Bne NoKeyRight
Btst #7,d1
Beq DRight
Bclr #0,(a5)
;Bclr #5,(a5)
Bra NoKeyLeft
DRight Bset #0,(a5)
;Bset #5,(a5)
Bra NoKeyLeft
NoKeyRight Cmpi.b #$18,d0
Bne NoKeyLeft
Btst #7,d1
Beq DLeft
Bclr #1,(a5)
;Bclr #5,(a5)
Bra NoKeyLeft
Dleft Bset #1,(a5)
;Bset #5,(a5)
NoKeyLeft Cmpi.b #$20,d0
Bne NoKeyDown
;Bset #2,(a5)
;Bset #5,(a5)
Bra NoKeyDown
NoKeyDown Cmpi.b #$10,d0
Bne NoKeyUp
Btst #7,d1
Beq DUp
Bclr #3,(a5)
;Bclr #5,(a5)
Bra NoKeyUp
DUp Bset #3,(a5)
;Bset #5,(a5)
NoKeyUp Cmpi.b #$38,d0
Bne NoKeyFire
Bset #4,(a5)
;Bset #5,(a5)
NokeyFire Move.b (a5),d0
And.b #$0f,d0
Cmpi.b #0,d0
Bne Movement
Bclr #5,(a5)
Bra DoneKeys
Movement Bset #5,(a5)
DoneKeys Rts
SetGoodies Lea GoodiesList,a0
Move.w #0,GoodNumber
Move.w (a0)+,d7
GoodySetLoop Moveq #0,d0
Moveq #0,d1
Move.b (a0),d0
Move.b 1(a0),d1
Btst #0,d0
Beq GoodNoMore
Move.b 6(a0),d4
Move.b 7(a0),d5
Move.b TimeMins,d6
Cmp.b d4,d6
Bne GoodNoMore
Move.b TimeSecs,d6
Cmp.b d5,d6
Bne GoodNoMore
Btst #7,(a0)
; Bne GoodNoMore
Bsr DoTheGood
GoodNoMore Add.w #1,GoodNumber
Add.l #8,a0
Dbf d7,GoodySetLoop
Rts
DoTheGood Moveq #0,d0
Bset #7,(a0)
Move.w GoodNumber,d0
Add.w #1,GoodPlace
Move.w GoodPlace,d5
Move.w GoodiesList,d6
Cmp.b d5,d6
Beq NoMoreCGoods
Lea CGoodTable,a1
Lea CGoodRecTable,a2
Asl.w #2,d0
Add.l d0,a1
Add.l d0,a2
Move.l (a1),a1
Move.l (a2),a2
Lea GoodyData,a3
Lea GoodyMask,a4
Asl.w #1,d1
Add.l d1,a3
Add.l d1,a4
Lea Piccy,a5
Lea PiccyBack,a6
Move.w 2(a0),d3
Move.w 4(a0),d4
Asl.w #1,d3
Move.l #$c8,d2
Muls d4,d2
Add.w d3,d2
Add.l d2,a5
Add.l d2,a6
Move.l a4,d0
Move.w d0,4(a1)
Swap d0
Move.w d0,(a1)
Add.l #8,a1
Move.l a3,d0
Move.w d0,4(a1)
Swap d0
Move.w d0,(a1)
Add.l #8,a1
Move.l a5,d0
Move.w d0,4(a1)
Swap d0
Move.w d0,(a1)
Add.l #8,a1
Move.l a5,d0
Move.w d0,4(a1)
Swap d0
Move.w d0,(a1)
Add.l #8,a1
Move.l a6,d0
Move.w d0,4(a2)
Swap d0
Move.w d0,(a2)
Add.l #8,a2
Move.l a5,d0
Move.w d0,4(a2)
Swap d0
Move.w d0,0(a2)
NoMoreCGoods Rts
Timer Move.l #0,d6
Move.w #1,FontXPos
Move.w #1,FontYPos
Move.w #"T",FontChar
Bsr DoFontBlit
Add.w #1,FontXPos
Move.w #"I",FontChar
Bsr DoFontBlit
Add.w #1,FontXPos
Move.w #"M",FontChar
Bsr DoFontBlit
Add.w #1,FontXPos
Move.w #"E",FontChar
Bsr DoFontBlit
Add.w #1,FontXPos
Move.b TimeMins,d6
Bsr DoTens
Add.w #1,FontXPos
Move.w #":",FontChar
Bsr DoFontBlit
Add.w #1,FontXPos
Move.b TimeSecs,d6
Bra DoTens
DiagNostix Move.l #0,d6
Move.b DiagVal,d6
Move.w #0,FontXPos
Move.w #0,FontYPos
Move.l #10000,d1
Bsr DoDiagDivs
Add.w #1,FontXPos
DoThousands Move.l #1000,d1
Bsr DoDiagDivs
Add.w #1,FontXPos
DoHundreds Move.l #100,d1
Bsr DoDiagDivs
Add.w #1,FontXPos
DoTens Move.l #10,d1
Bsr DoDiagDivs
Add.w #1,FontXPos
DoUnits Move.l #1,d1
Bsr DoDiagDivs
Rts
DoDiagDivs Divs d1,d6
Move.w d6,FontChar
And.w #$f,FontChar
Add.w #48,FontChar
Bsr DoFontBlit
Move.w #0,d6
Swap d6
Rts
DoFontBlit Move.l #0,d0
Move.l #0,d1
Move.l #0,d2
Lea FontData,a0
Move.w FontChar,d0
Move.w FontXPos,d1
Move.w FontYPos,d2
Move.l #0,d3
Asl.w #1,d1
Add.l d1,d3
Move.l #3200,d1
Muls d2,d1
Add.l d1,d3
Sub.w #32,d0
Move.l #2,d1
Muls d0,d1
Add.l d1,a0
Lea Piccy,a1
Add.l d3,a1
Bsr ActualFontBlit
Lea PiccyBack,a1
Add.l d3,a1
Bra ActualFontBlit
ActualFontBlit Lea Hardware,a6
Bsr BlitterWait
Move.l #$ffffffff,Bltafwm(a6)
Move.l a0,Bltapth(a6)
Move.l a1,Bltdpth(a6)
Move.w #118,Bltamod(a6)
Move.w #38,Bltdmod(a6)
Move.w #$09f0,Bltcon0(a6)
Move.w #$0000,Bltcon1(a6)
Move.w #(16*5)*64+1,BltSize(a6)
Rts
Helpos
Move.w IntEnSave,d7
Bset #$F,d7
Move.w d7,$Dff09A
Move.w IntRqSave,d7
Bset #$F,d7
Move.w d7,$Dff09C
Move.w DMASave,d7
Bset #$F,d7
Move.w d7,$Dff096
Move.w #$F,$Dff096
Move.w ADKSave,d7
Bset #$F,d7
Move.w d7,$Dff09E
Move.l GFXBase,a0
Move.l $26(a0),$Dff080
Move.l $4,a6
Jsr -138(a6) _LVOPermit
Move.l SYSStack,d0
Jsr -156(a6) _LVOUserState
Rts
DoCopperShade Lea CopperShade,a0
Move.w #229,d7
Move.w #$32,d6
Move.w #$fff,d1
Move.w #$00f,d2
Move.w #0,d3
DoShade Move.b d6,(a0)
Add.l #6,a0
Move.w d2,d0
Add.w #1,d3
Cmpi.b #16,d3
Bne NoColChange
Sub.w #$001,d2
Sub.w #$110,d1
Move.w #0,d3
NoColChange And.w #$fff,d0
Move.w d0,(a0)
Add.l #4,a0
Move.w #4,d5
Move.w d1,d0
DoColour Bsr Darken
Bsr Darken
And.w #$fff,d0
Move.w d0,(a0)
Add.l #4,a0
Dbf d5,DoColour
Add.l #2,a0
Add.w #1,d6
Dbf d7,DoShade
Lea CopperShade,a0
Move.w #$30,d0
Move.w #229,d1
CopperWaitLoop Add.w #1,d0
Move.b d0,(a0)
Cmpi.w #$100,d0
Bne PalCopper
Move.w #$ffe1,(a0)
Move.w #0,d0
PalCopper Add.l #32,a0
Dbf d1,CopperWaitLoop
Rts
Darken Move.w d0,d4
And.w #$f,d4
Cmpi.b #0,d4
Beq NoDecBlue
Sub.w #$1,d0
NoDecBlue Move.w d0,d4
Asr.w #4,d4
And.w #$f,d4
Cmpi.b #0,d4
Beq NoDecGreen
Sub.w #$10,d0
NoDecGreen Move.w d0,d4
Asr.w #8,d4
And.w #$f,d4
Cmpi.b #0,d4
Beq NoDecRed
Sub.w #$100,d0
NoDecRed Rts
Interrupts
Movem.l d0-d7/a0-a6,-(a7)
Movem.l (a7)+,d0-d7/a0-a6
Move.w #$2000,$Dff09c
Rte
; System Variables
SYSStack Dc.l 0
GFXBase Dc.l 0
InitialSP Dc.l 0
OldInterrupts Dc.l 0
IntEnSave Dc.w 0
IntRqSave Dc.w 0
DMASave Dc.w 0
ADKSave Dc.w 0
GFXLib Dc.b 'graphics.library',0
Even
; Program Variables
BlokeXPos Dc.w 0
BlokeYPos Dc.w 0
BlokeFrame Dc.w 0
NastyXPos Dc.w 0
NastyYPos Dc.w 0
NastyFrame Dc.w 0
GoodyXPos Dc.w 0
GoodyYPos Dc.w 0
GoodyFrame Dc.w 0
ScoreXPos Dc.w 0
ScoreYPos Dc.w 0
ScoreFrame Dc.w 0
OldX Dc.w 0
OldY Dc.w 0
MoveFlag Dc.b 0
MoveFlag1 Dc.b 0
JumpFlag Dc.b 0
JumpFlag1 Dc.b 0
CollFlag Dc.b 0
CollFlag1 Dc.b 0
DireFlag Dc.b 0
WalkFrame Dc.b 0
WalkSpeed Dc.b 4
WalkCounter Dc.b 0
MoveFlagN Dc.b 0
MoveFlag1N Dc.b 0
JumpFlagN Dc.b 0
JumpFlag1N Dc.b 0
CollFlagN Dc.b 0
CollFlag1N Dc.b 0
DireFlagN Dc.b 0
WalkFrameN Dc.b 0
WalkSpeedN Dc.b 6
WalkCounterN Dc.b 0
TimeFrame Dc.b 0
TimeSecs Dc.b 0
TimeMins Dc.b 0
TimeHour Dc.b 0
FontAdd Dc.l 0
FontChar Dc.w 0
FontXPos Dc.w 0
FontYPos Dc.w 0
DiagVal Dc.w 47
DiagReg Dc.w 12
DiagX Dc.w 0
JumpFrames Dc.w 79
JumpDown Dc.w 39
JumpSpeed Dc.w -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1
Dc.w 0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
JumpFramesN Dc.w 79
JumpDownN Dc.w 39
JumpSpeedN Dc.w -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1
Dc.w 0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
GoodiesList Dc.w 10
Dc.b 0,000,0,001,0,208,0,003
Dc.b 0,001,0,002,0,208,0,004
Dc.b 0,002,0,003,0,208,0,005
Dc.b 0,003,0,004,0,208,0,006
Dc.b 0,004,0,005,0,208,0,007
Dc.b 0,005,0,006,0,208,0,008
Dc.b 0,006,0,007,0,208,0,009
Dc.b 0,007,0,008,0,208,0,010
Dc.b 0,008,0,001,0,192,0,011
Dc.b 0,009,0,002,0,192,0,012
Dc.b 0,010,0,003,0,192,0,013
Dc.b 0,011,0,004,0,192,0,014
Dc.b 0,012,0,005,0,192,0,015
Dc.b 0,013,0,006,0,192,0,016
Dc.b 0,014,0,007,0,192,0,017
Dc.b 0,015,0,008,0,192,0,018
GoodPlace Dc.w 0
GoodNumber Dc.w 0
CGoodRecTable Dc.l CGood1RecA,CGood2RecA,CGood3RecA,CGood4RecA
Dc.l CGood5RecA,CGood6RecA,CGood7RecA,CGood8RecA
Dc.l CGood9RecA,CGood10RecA,CGood1RecA,CGood2RecA
Dc.l CGood3RecA,CGood4RecA,CGood5RecA,CGood6RecA
CGoodTable Dc.l CGood1A,CGood2A,CGood3A,CGood4A
Dc.l CGood5A,CGood6A,CGood7A,CGood8A
Dc.l CGood9A,CGood10A,CGood1A,CGood2A
Dc.l CGood3A,CGood4A,CGood5A,CGood6A
Section "ChipStuff",Code_c
Newcopper
Dc.w $0001,$7ffe
Dc.w $0044,$ffff,$0046,$ffff
Dc.w $0040,$09f0,$0042,$0000
Dc.w $0050
CBlokeRecA Dc.w $0002,$0052,$2340
Dc.w $0054
CBlokeRecD Dc.w $0002,$0056,$2340
Dc.w $0064,$0022,$0066,$0022
Dc.w $0058,(34*5)*64+3
Dc.w $0401,$7ffe
Dc.w $0044,$ffff,$0046,$ffff
Dc.w $0040,$09f0,$0042,$0000
Dc.w $0050
CNastyRecA Dc.w $0002,$0052,$2340
Dc.w $0054
CNastyRecD Dc.w $0002,$0056,$2340
Dc.w $0064,$0022,$0066,$0022
Dc.w $0058,(34*5)*64+3
Dc.w $0801,$7ffe
Dc.w $0040,$09f0,$0042,$0000
Dc.w $0050
CGood1RecA Dc.w $0002,$0052,$2340
Dc.w $0054
CGood1RecD Dc.w $0002,$0056,$2340
Dc.w $0064,$0026,$0066,$0026
Dc.w $0058,(16*5)*64+1
Dc.w $0a01,$7ffe
Dc.w $0040,$09f0,$0042,$0000
Dc.w $0050
CGood2RecA Dc.w $0002,$0052,$2340
Dc.w $0054
CGood2RecD Dc.w $0002,$0056,$2340
Dc.w $0064,$0026,$0066,$0026
Dc.w $0058,(16*5)*64+1
Dc.w $0c01,$7ffe
Dc.w $0040,$09f0,$0042,$0000
Dc.w $0050
CGood3RecA Dc.w $0002,$0052,$2340
Dc.w $0054
CGood3RecD Dc.w $0002,$0056,$2340
Dc.w $0064,$0026,$0066,$0026
Dc.w $0058,(16*5)*64+1
Dc.w $0e01,$7ffe
Dc.w $0040,$09f0,$0042,$0000
Dc.w $0050
CGood4RecA Dc.w $0002,$0052,$2340
Dc.w $0054
CGood4RecD Dc.w $0002,$0056,$2340
Dc.w $0064,$0026,$0066,$0026
Dc.w $0058,(16*5)*64+1
Dc.w $1001,$7ffe
Dc.w $0040,$09f0,$0042,$0000
Dc.w $0050
CGood5RecA Dc.w $0002,$0052,$2340
Dc.w $0054
CGood5RecD Dc.w $0002,$0056,$2340
Dc.w $0064,$0026,$0066,$0026
Dc.w $0058,(16*5)*64+1
Dc.w $1201,$7ffe
Dc.w $0040,$09f0,$0042,$0000
Dc.w $0050
CGood6RecA Dc.w $0002,$0052,$2340
Dc.w $0054
CGood6RecD Dc.w $0002,$0056,$2340
Dc.w $0064,$0026,$0066,$0026
Dc.w $0058,(16*5)*64+1
Dc.w $1401,$7ffe
Dc.w $0040,$09f0,$0042,$0000
Dc.w $0050
CGood7RecA Dc.w $0002,$0052,$2340
Dc.w $0054
CGood7RecD Dc.w $0002,$0056,$2340
Dc.w $0064,$0026,$0066,$0026
Dc.w $0058,(16*5)*64+1
Dc.w $1601,$7ffe
Dc.w $0040,$09f0,$0042,$0000
Dc.w $0050
CGood8RecA Dc.w $0002,$0052,$2340
Dc.w $0054
CGood8RecD Dc.w $0002,$0056,$2340
Dc.w $0064,$0026,$0066,$0026
Dc.w $0058,(16*5)*64+1
Dc.w $1801,$7ffe
Dc.w $0040,$09f0,$0042,$0000
Dc.w $0050
CGood9RecA Dc.w $0002,$0052,$2340
Dc.w $0054
CGood9RecD Dc.w $0002,$0056,$2340
Dc.w $0064,$0026,$0066,$0026
Dc.w $0058,(16*5)*64+1
Dc.w $1a01,$7ffe
Dc.w $0040,$09f0,$0042,$0000
Dc.w $0050
CGood10RecA Dc.w $0002,$0052,$2340
Dc.w $0054
CGood10RecD Dc.w $0002,$0056,$2340
Dc.w $0064,$0026,$0066,$0026
Dc.w $0058,(16*5)*64+1
Dc.w $2001,$7ffe
Dc.w $0044,$ffff,$0046,$ffff
Dc.w $0040
CNastyCon Dc.w $0fca,$0042,$0000
Dc.w $0050
CNastyA Dc.w $000f,$0052,$0000
Dc.w $004c
CNastyB Dc.w $000f,$004e,$0000
Dc.w $0048
CNastyC Dc.w $000f,$004a,$0000
Dc.w $0054
CNastyD Dc.w $000f,$0056,$0000
Dc.w $0062,$0006,$0064,$0006
Dc.w $0060,$0022,$0066,$0022
Dc.w $0058,(32*5)*64+3
Dc.w $2c01,$7ffe
Dc.w $0044,$ffff,$0046,$ffff
Dc.w $0040
CBlokeCon Dc.w $0fca,$0042,$0000
Dc.w $0050
CBlokeA Dc.w $000f,$0052,$0000
Dc.w $004c
CBlokeB Dc.w $000f,$004e,$0000
Dc.w $0048
CBlokeC Dc.w $000f,$004a,$0000
Dc.w $0054
CBlokeD Dc.w $000f,$0056,$0000
Dc.w $0062,$0006,$0064,$0006
Dc.w $0060,$0022,$0066,$0022
Dc.w $0058,(32*5)*64+3
Dc.w $0100,$200,$1f0,0,$0104,$000A
Dc.w $0092,$0030,$0094,$00c8
Dc.w $008E,$3069,$0090,$36bb
Dc.w $120,0,$122,0,$142,0,$144,0,$146,0
Dc.w $102,$00aa
Dc.w $0108,$a0,$010A,$a0
Dc.w $3001,$fffe
Dc.w $00E0
Pl0h Dc.w $0000
Dc.w $00E2
Pl0l Dc.w $0000
Dc.w $00E4
Pl1h Dc.w $0000
Dc.w $00E6
Pl1l Dc.w $0000
Dc.w $00E8
Pl2h Dc.w $0000
Dc.w $00Ea
Pl2l Dc.w $0000
Dc.w $00Ec
Pl3h Dc.w $0000
Dc.w $00Ee
Pl3l Dc.w $0000
Dc.w $00f0
Pl4h Dc.w $0000
Dc.w $00f2
Pl4l Dc.w $0000
Dc.w $3101,$fffe,$100,$5200
Dc.w $01f0,$0111,$0182,$0ccc,$0184,$0888,$0186,$0444
Dc.w $0188,$0111,$018a,$00f0,$018c,$00c0,$018e,$07f5
Dc.w $0190,$06b4,$0192,$0683,$01a2,$0fff,$01a4,$0fbb,$01a6,$0c57
Dc.w $01a8,$0a07,$01aa,$0dbf,$01ac,$0a5f,$01ae,$0729
Dc.w $01b0,$0ff0,$01b2,$0fb0,$01b4,$0f60,$01b6,$0f20
Dc.w $01b8,$049f,$01ba,$034f,$01bc,$023b,$01be,$0850
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $3601,$7ffe
Dc.w $0040
CGood1Con Dc.w $0fca,$0042,$0000
Dc.w $0050
CGood1A Dc.w $000f,$0052,$0000
Dc.w $004c
CGood1B Dc.w $000f,$004e,$0000
Dc.w $0048
CGood1C Dc.w $000f,$004a,$0000
Dc.w $0054
CGood1D Dc.w $000f,$0056,$0000
Dc.w $0062,$0026,$0064,$0026
Dc.w $0060,$0026,$0066,$0026
Dc.w $0058,(16*5)*64+1
CopShade1 Dc.w $3801,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $3901,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $3a01,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $4201,$7ffe
Dc.w $0040
CGood2Con Dc.w $0fca,$0042,$0000
Dc.w $0050
CGood2A Dc.w $000f,$0052,$0000
Dc.w $004c
CGood2B Dc.w $000f,$004e,$0000
Dc.w $0048
CGood2C Dc.w $000f,$004a,$0000
Dc.w $0054
CGood2D Dc.w $000f,$0056,$0000
Dc.w $0062,$0026,$0064,$0026
Dc.w $0060,$0026,$0066,$0026
Dc.w $0058,(16*5)*64+1
CopShade2 Dc.w $4801,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $4901,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $4a01,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $4e01,$7ffe
Dc.w $0040
CGood3Con Dc.w $0fca,$0042,$0000
Dc.w $0050
CGood3A Dc.w $000f,$0052,$0000
Dc.w $004c
CGood3B Dc.w $000f,$004e,$0000
Dc.w $0048
CGood3C Dc.w $000f,$004a,$0000
Dc.w $0054
CGood3D Dc.w $000f,$0056,$0000
Dc.w $0062,$0026,$0064,$0026
Dc.w $0060,$0026,$0066,$0026
Dc.w $0058,(16*5)*64+1
Dc.w $5601,$7ffe
Dc.w $0040
CGood4Con Dc.w $0fca,$0042,$0000
Dc.w $0050
CGood4A Dc.w $000f,$0052,$0000
Dc.w $004c
CGood4B Dc.w $000f,$004e,$0000
Dc.w $0048
CGood4C Dc.w $000f,$004a,$0000
Dc.w $0054
CGood4D Dc.w $000f,$0056,$0000
Dc.w $0062,$0026,$0064,$0026
Dc.w $0060,$0026,$0066,$0026
Dc.w $0058,(16*5)*64+1
CopShade3 Dc.w $5801,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $5901,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $5a01,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $5e01,$7ffe
Dc.w $0040
CGood5Con Dc.w $0fca,$0042,$0000
Dc.w $0050
CGood5A Dc.w $000f,$0052,$0000
Dc.w $004c
CGood5B Dc.w $000f,$004e,$0000
Dc.w $0048
CGood5C Dc.w $000f,$004a,$0000
Dc.w $0054
CGood5D Dc.w $000f,$0056,$0000
Dc.w $0062,$0026,$0064,$0026
Dc.w $0060,$0026,$0066,$0026
Dc.w $0058,(16*5)*64+1
Dc.w $6601,$7ffe
Dc.w $0040
CGood6Con Dc.w $0fca,$0042,$0000
Dc.w $0050
CGood6A Dc.w $000f,$0052,$0000
Dc.w $004c
CGood6B Dc.w $000f,$004e,$0000
Dc.w $0048
CGood6C Dc.w $000f,$004a,$0000
Dc.w $0054
CGood6D Dc.w $000f,$0056,$0000
Dc.w $0062,$0026,$0064,$0026
Dc.w $0060,$0026,$0066,$0026
Dc.w $0058,(16*5)*64+1
CopShade4 Dc.w $6801,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $6901,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $6a01,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $6e01,$7ffe
Dc.w $0040
CGood7Con Dc.w $0fca,$0042,$0000
Dc.w $0050
CGood7A Dc.w $000f,$0052,$0000
Dc.w $004c
CGood7B Dc.w $000f,$004e,$0000
Dc.w $0048
CGood7C Dc.w $000f,$004a,$0000
Dc.w $0054
CGood7D Dc.w $000f,$0056,$0000
Dc.w $0062,$0026,$0064,$0026
Dc.w $0060,$0026,$0066,$0026
Dc.w $0058,(16*5)*64+1
Dc.w $7601,$7ffe
Dc.w $0040
CGood8Con Dc.w $0fca,$0042,$0000
Dc.w $0050
CGood8A Dc.w $000f,$0052,$0000
Dc.w $004c
CGood8B Dc.w $000f,$004e,$0000
Dc.w $0048
CGood8C Dc.w $000f,$004a,$0000
Dc.w $0054
CGood8D Dc.w $000f,$0056,$0000
Dc.w $0062,$0026,$0064,$0026
Dc.w $0060,$0026,$0066,$0026
Dc.w $0058,(16*5)*64+1
CopShade5 Dc.w $7801,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $7901,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $7a01,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $7e01,$7ffe
Dc.w $0040
CGood9Con Dc.w $0fca,$0042,$0000
Dc.w $0050
CGood9A Dc.w $000f,$0052,$0000
Dc.w $004c
CGood9B Dc.w $000f,$004e,$0000
Dc.w $0048
CGood9C Dc.w $000f,$004a,$0000
Dc.w $0054
CGood9D Dc.w $000f,$0056,$0000
Dc.w $0062,$0026,$0064,$0026
Dc.w $0060,$0026,$0066,$0026
Dc.w $0058,(16*5)*64+1
Dc.w $8601,$7ffe
Dc.w $0040
CGood10Con Dc.w $0fca,$0042,$0000
Dc.w $0050
CGood10A Dc.w $000f,$0052,$0000
Dc.w $004c
CGood10B Dc.w $000f,$004e,$0000
Dc.w $0048
CGood10C Dc.w $000f,$004a,$0000
Dc.w $0054
CGood10D Dc.w $000f,$0056,$0000
Dc.w $0062,$0026,$0064,$0026
Dc.w $0060,$0026,$0066,$0026
Dc.w $0058,(16*5)*64+1
CopShade6 Dc.w $8801,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $8901,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $8a01,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
CopShade7 Dc.w $9801,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $9901,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $9a01,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
CopShade8 Dc.w $a801,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $a901,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $aa01,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
CopShade9 Dc.w $b801,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $b901,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $ba01,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
CopShade10 Dc.w $c801,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $c901,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $ca01,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
CopShade11 Dc.w $d801,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $d901,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $da01,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
CopShade12 Dc.w $e801,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $e901,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $ea01,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
CopShade13 Dc.w $f801,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $f901,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $fa01,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $ffe1,$fffe
CopShade14 Dc.w $0801,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $0901,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $0a01,$fffe
Dc.w $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
Dc.w $1901,$fffe
Dc.w $100,$200
Ints Dc.w $009C,$0000
Dc.w $ffff,$fffe
DeadCopper Dc.w $100,$200,$1f0,0,$ffff,$fffe
CopperShade Dc.l 0
MapData Incbin Df0:OffLevel1.Data
BloxData Incbin Df0:Offblox.Raw
BlokeData Incbin Df0:Temp-Bloke.Raw
BlokeMask Incbin Df0:Temp-Bloke.Mask
NastyData Incbin Df0:OffBad1.Raw
NastyMask Incbin Df0:OffBad1.Mask
GoodyData Incbin Df0:OffGoodies.Raw
GoodyMask Incbin Df0:OffGoodies.Mask
ScoresData Incbin Df0:OffScores.Raw
ScoresMask Incbin Df0:OffScores.Mask
FontData Incbin Df0:Retro-Font.Raw
Piccy Ds.b (40*5*233)
ShitBuffer Ds.b (40*5*33)
PiccyBack Ds.b (40*5*233)
***** Custom chipbase offset table *****
;General registers
Dmaconr = $002
Vposr = $004
Vhposr = $006
Joy0dat = $00A
Joy1dat = $00C
Intenar = $01C
Intereqr = $01E
CopCon = $02E
;Blitter registers
Bltcon0 = $040
Bltcon1 = $042
Bltafwm = $044
Bltalwm = $046
Bltcpth = $048
Bltcptl = $04A
Bltbpth = $04C
Bltbptl = $04E
Bltapth = $050
Bltaptl = $052
Bltdpth = $054
Bltdptl = $056
Bltsize = $058
Bltcmod = $060
Bltbmod = $062
Bltamod = $064
Bltdmod = $066
Bltcdat = $070
Bltbdat = $072
Bltadat = $074
;Copper registers
Cop1lc = $080
Cop1lch = $080
Cop1lcl = $082
Cop2lc = $084
Cop2lch = $084
Cop2lcl = $086
Copjmp1 = $088
Copjmp2 = $08A
Diwstrt = $08E
Diwstop = $090
Ddfstrt = $092
Ddfstop = $094
Dmacon = $096
Intena = $09A
Intreq = $09C
;Audio registers
Adkcon = $09E
Aud0lch = $0A0
Aud0lcl = $0A2
Aud0len = $0A4
Aud0per = $0A6
Aud0vol = $0A8
Aud0dat = $0AA
Aud1lch = $0B0
Aud1lcl = $0B2
Aud1len = $0B4
Aud1per = $0B6
Aud1vol = $0B8
Aud1dat = $0BA
Aud2lch = $0C0
Aud2lcl = $0C2
Aud2len = $0C4
Aud2per = $0C6
Aud2vol = $0C8
Aud2dat = $0CA
Aud3lch = $0D0
Aud3lcl = $0D2
Aud3len = $0D4
Aud3per = $0D6
Aud3vol = $0D8
Aud3dat = $0DA
Color00 = $180
Color01 = $182
Color02 = $184
Color03 = $186
Color04 = $188
Color05 = $18A
Color06 = $18C
Color07 = $18E
Color08 = $190
Color09 = $192
Color10 = $194
Color11 = $196
Color12 = $198
Color13 = $19A
Color14 = $19C
Color15 = $19E
Color16 = $1A0
Color17 = $1A2
Color18 = $1A4
Color19 = $1A6
Color20 = $1A8
Color21 = $1AA
Color22 = $1AC
Color23 = $1AE
Color24 = $1B0
Color25 = $1B2
Color26 = $1B4
Color27 = $1B6
Color28 = $1B8
Color29 = $1BA
Color30 = $1BC
Color31 = $1BE
Bpl1pth = $0E0
Bpl1ptl = $0E2
Bpl2pth = $0E4
Bpl2ptl = $0E6
Bpl3pth = $0E8
Bpl3ptl = $0EA
Bpl4pth = $0EC
Bpl4ptl = $0EE
Bpl5pth = $0F0
Bpl5ptl = $0F2
Bpl6pth = $0F4
Bpl6ptl = $0F6
Bplcon0 = $100
Bplcon1 = $102
Bplcon2 = $104
Bpl1mod = $108
Bpl2mod = $10A
HardWare = $dff000